ДЛЯ НОВИЧКОВНЕ ДЛЯ НОВИЧКОВНЕ ОБЯЗАТЕЛЬНОВ РАЗРАБОТКЕ
Разработчику
Архитектору
Чек-лист разработки
- Что такое Kotlin и для каких задач он предназначен?
- Кто разработал Kotlin и когда он был представлен?
- Как Kotlin связан с JVM и Java?
- Поддерживает ли Kotlin компиляцию в JavaScript или нативный код?
- Что означает «полная совместимость с Java»?
- Какие есть уровни совместимости между Kotlin и Java?
- Как объявляются переменные (
val vs var)?
- В чём разница между изменяемыми и неизменяемыми ссылками?
- Как работает вывод типа в Kotlin?
- Что такое nullable и non-nullable типы?
- Как объявить nullable тип?
- Как безопасно работать с nullable значениями (
?., ?:, !!, let)?
- Что такое утверждение (
!!) и когда его стоит избегать?
- Какие примитивные типы есть в Kotlin и чем они отличаются от Java?
- Что такое строки и как работает интерполяция (
"Hello, $name")?
- Как объявляются функции и какие элементы обязательны?
- Может ли функция не иметь тела (однострочная)?
- Что такое единичный тип (
Unit) и чем он отличается от void?
- Что такое
Nothing и где он используется?
- Как работают условия (
if как выражение)?
- Что такое
when и чем он мощнее switch?
- Какие циклы поддерживаются (
for, while, do-while)?
- Как объявляется класс в Kotlin?
- Что такое первичный конструктор и как он записывается?
- Что такое data-классы и какие методы они генерируют автоматически?
- Что такое sealed-классы и зачем они нужны?
- Как работает наследование и почему классы по умолчанию final?
- Что такое open-модификатор?
- Как переопределяются методы и свойства?
- Что такое интерфейсы в Kotlin и могут ли они содержать реализацию?
- Что такое объекты (
object) и companion-объекты?
- Как работают расширения (extension functions и properties)?
- Что такое делегирование свойств (
by lazy, by Delegates.observable)?
- Какие встроенные делегаты есть в стандартной библиотеке?
- Что такое лямбда-выражения и как они записываются?
- Что такое функции высшего порядка?
- Как работают коллекции (
List, Set, Map) — изменяемые и неизменяемые?
- Какие операторы над коллекциями есть (
map, filter, find, groupBy)?
- Что такое последовательности (
Sequence) и когда их использовать?
- Как обрабатываются исключения в Kotlin?
- Поддерживает ли Kotlin checked exceptions?
- Что такое корутины и зачем они нужны?
- Как запускать корутины (
launch, async)?
- Что такое CoroutineScope, Job, Dispatcher?
- Как отменить корутину?
- Что такое Flow и чем он отличается от
Sequence и RxJava?
- Как работает работа с файлами и вводом/выводом?
- Как сериализовать объекты (kotlinx.serialization)?
- Как писать unit-тесты на Kotlin (JUnit, Kotest)?
- Какие инструменты используются для сборки проектов на Kotlin (Gradle, Maven)?